//
//  SHStatusOriginalView.swift
//  WeiBo001
//
//  Created by ZhiQiang Li on 16/7/25.
//  Copyright © 2016年 ZhiQiang Li. All rights reserved.
//

import UIKit
import SnapKit

class SHStatusOriginalView: UIView {
        //记录当前原创微博的底部约束
        var orginalViewBottomConstraint:Constraint?
        //定义一个viewmodel共外界调用
       
        var staViewModel:CZStatusViewModel?{
           didSet{
            //设置头像
            headImageView.sh_setImage(staViewModel?.status?.user?.profile_image_url, placeholderImgName: "avatar_default")
            //昵称
            nameLabel.text = staViewModel?.status?.user?.name
            // 时间和来源后续处理
            timeLabel.text = "时间"
            sourceLabel.text = "来自 上海三期微博"
            // 微博会员等级
            memberImageView.image = staViewModel?.memberImage
            // 微博认证用户
            avatarImageView.image = staViewModel?.avatarImage
            // 微博正文
            contentLabel.text = staViewModel?.status?.text

           //配图
            // 卸载约束
            orginalViewBottomConstraint?.uninstall()
            
            // 代表有配图
            if staViewModel?.status?.pic_urls?.count > 0{
                // 赋值
                pictureView.pictureInfo = staViewModel?.status?.pic_urls
                // 更改约束
                self.snp_makeConstraints(closure: { (make) -> Void in
                    self.orginalViewBottomConstraint = make.bottom.equalTo(pictureView).offset(statusCellMargin).constraint
                })
                // 显示配图
                pictureView.hidden = false
            }else {
                // 代表没有配图
                // 更改约束
                self.snp_makeConstraints(closure: { (make) -> Void in
                    self.orginalViewBottomConstraint = make.bottom.equalTo(contentLabel).offset(statusCellMargin).constraint
                })
                // 隐藏配图
                pictureView.hidden = true
            }
            
            
            }
    }
    
        override init(frame: CGRect) {
            super.init(frame: frame)
            setupUI()
        }
        
        required init?(coder aDecoder: NSCoder) {
            fatalError("init(coder:) has not been implemented")
        }
        
        //  设置视图
        private func setupUI(){
            backgroundColor = RandomColor()
            // 添加控件
            addSubview(headImageView)
            addSubview(nameLabel)
            addSubview(memberImageView)
            addSubview(timeLabel)
            addSubview(sourceLabel)
            addSubview(avatarImageView)
            addSubview(contentLabel)
            addSubview(pictureView)
            // 添加约束
            // 01
            headImageView.snp_makeConstraints { (make) -> Void in
                make.top.leading.equalTo(10)
                make.size.equalTo(CGSize(width: 35, height: 35))
            }
            // 02
            nameLabel.snp_makeConstraints { (make) -> Void in
                make.top.equalTo(headImageView)
                make.leading.equalTo(headImageView.snp_trailing).offset(10)
            }
            // 03
            memberImageView.snp_makeConstraints { (make) -> Void in
                make.leading.equalTo(nameLabel.snp_trailing).offset(10)
                make.centerY.equalTo(nameLabel)
            }
            // 04
            timeLabel.snp_makeConstraints { (make) -> Void in
                make.leading.equalTo(nameLabel)
                make.bottom.equalTo(headImageView)
            }
            // 05
            sourceLabel.snp_makeConstraints { (make) -> Void in
                make.leading.equalTo(timeLabel.snp_trailing).offset(10)
                make.bottom.equalTo(timeLabel)
            }
            // 06
            avatarImageView.snp_makeConstraints { (make) -> Void in
                make.centerX.equalTo(headImageView.snp_trailing)
                make.centerY.equalTo(headImageView.snp_bottom)
            }
            // 07
            contentLabel.snp_makeConstraints { (make) -> Void in
                make.top.equalTo(headImageView.snp_bottom).offset(statusCellMargin)
                make.leading.equalTo(headImageView)
            }
            // 08
            pictureView.snp_makeConstraints { (make) -> Void in
                make.top.equalTo(contentLabel.snp_bottom).offset(statusCellMargin)
                make.leading.equalTo((SCREENW - (cellWH*3 + cellMargin*2))/2)
               
            }
            

            // 给当前原创微博设置约束
            self.snp_makeConstraints { (make) -> Void in
                self.orginalViewBottomConstraint = make.bottom.equalTo(pictureView).offset(statusCellMargin).constraint
            }
            
    }
    
     
        // 头像
        
        private lazy var headImageView:UIImageView = UIImageView(imageName: "avatar_default")
       
        // 昵称
        private lazy var nameLabel: UILabel = UILabel(textColor: UIColor.blackColor(), textFont: 15)
        // 微博等级common_icon_membership
        private lazy var memberImageView: UIImageView = UIImageView(imageName: "common_icon_membership")
        // 微博时间
        private lazy var timeLabel: UILabel = UILabel(textColor: ThemeColor, textFont: 10)
        // 微博来源
        private lazy var sourceLabel: UILabel = UILabel(textColor: ThemeColor, textFont: 10)
        // 认证logo avatar_vgirl
        private lazy var avatarImageView: UIImageView = UIImageView(imageName: "avatar_vgirl")
        //微博内容
        private lazy var contentLabel: UILabel = UILabel(textColor: UIColor.darkGrayColor(), textFont: 15,maxWidth: SCREENW - 20)
       //配图
       private lazy var pictureView:SHPictureView = SHPictureView()
    
    }
extension SHStatusOriginalView {
    // 当前方法已经抽取到ViewModel中
    
    func getAvatarImage(verified: Int?) -> UIImage?{
        print("处理微博认证用户图片")
        // 判读他是否为nil
        guard let ver = verified else{
            return nil
        }
        
        switch ver {
        case 1:
            return UIImage(named: "avatar_vip")
        case 2,3,5:
            return UIImage(named: "avatar_enterprise_vip")
        case 220:
            return UIImage(named: "avatar_grassroot")
        default:
            return UIImage(named: "avatar_vgirl")
        }
        
    }
    
    // 处理会员等级图片/// 会员等级 1-6
    func getMemberImage(mbrank: Int?) -> UIImage?{
        print("处理会员等级图片")
        // 判断他是否为nil
        guard let mbr = mbrank else {
            return nil
        }
        if mbr > 0 && mbr < 7 {
            return UIImage(named: "common_icon_membership_level\(mbr)")
        }
        return UIImage(named: "common_icon_membership")
    }
}


